(0) Obligation:

The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^2).


The TRS R consists of the following rules:

cond(true, x) → cond(odd(x), p(p(p(x))))
odd(0) → false
odd(s(0)) → true
odd(s(s(x))) → odd(x)
p(0) → 0
p(s(x)) → x

Rewrite Strategy: INNERMOST

(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)

Converted Cpx (relative) TRS to CDT

(2) Obligation:

Complexity Dependency Tuples Problem
Rules:

cond(true, z0) → cond(odd(z0), p(p(p(z0))))
odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, z0) → c(COND(odd(z0), p(p(p(z0)))), ODD(z0), P(p(p(z0))), P(p(z0)), P(z0))
ODD(0) → c1
ODD(s(0)) → c2
ODD(s(s(z0))) → c3(ODD(z0))
P(0) → c4
P(s(z0)) → c5
S tuples:

COND(true, z0) → c(COND(odd(z0), p(p(p(z0)))), ODD(z0), P(p(p(z0))), P(p(z0)), P(z0))
ODD(0) → c1
ODD(s(0)) → c2
ODD(s(s(z0))) → c3(ODD(z0))
P(0) → c4
P(s(z0)) → c5
K tuples:none
Defined Rule Symbols:

cond, odd, p

Defined Pair Symbols:

COND, ODD, P

Compound Symbols:

c, c1, c2, c3, c4, c5

(3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 4 trailing nodes:

P(0) → c4
ODD(s(0)) → c2
ODD(0) → c1
P(s(z0)) → c5

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

cond(true, z0) → cond(odd(z0), p(p(p(z0))))
odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, z0) → c(COND(odd(z0), p(p(p(z0)))), ODD(z0), P(p(p(z0))), P(p(z0)), P(z0))
ODD(s(s(z0))) → c3(ODD(z0))
S tuples:

COND(true, z0) → c(COND(odd(z0), p(p(p(z0)))), ODD(z0), P(p(p(z0))), P(p(z0)), P(z0))
ODD(s(s(z0))) → c3(ODD(z0))
K tuples:none
Defined Rule Symbols:

cond, odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c3

(5) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 3 trailing tuple parts

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

cond(true, z0) → cond(odd(z0), p(p(p(z0))))
odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, z0) → c(COND(odd(z0), p(p(p(z0)))), ODD(z0))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, z0) → c(COND(odd(z0), p(p(p(z0)))), ODD(z0))
K tuples:none
Defined Rule Symbols:

cond, odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c

(7) CdtUsableRulesProof (EQUIVALENT transformation)

The following rules are not usable and were removed:

cond(true, z0) → cond(odd(z0), p(p(p(z0))))

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, z0) → c(COND(odd(z0), p(p(p(z0)))), ODD(z0))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, z0) → c(COND(odd(z0), p(p(p(z0)))), ODD(z0))
K tuples:none
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c

(9) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, z0) → c(COND(odd(z0), p(p(p(z0)))), ODD(z0)) by

COND(true, 0) → c(COND(odd(0), p(p(0))), ODD(0))
COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, 0) → c(COND(false, p(p(p(0)))), ODD(0))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))), ODD(0))
COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, 0) → c(COND(false, p(p(p(0)))), ODD(0))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))), ODD(0))
COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, 0) → c(COND(false, p(p(p(0)))), ODD(0))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
K tuples:none
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c

(11) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

COND(true, 0) → c(COND(false, p(p(p(0)))), ODD(0))

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))), ODD(0))
COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))), ODD(0))
COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
K tuples:none
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c

(13) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 2 trailing tuple parts

(14) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
K tuples:none
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(15) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(16) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(17) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0))) by

COND(true, s(0)) → c(COND(odd(s(0)), p(0)), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))

(18) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))), ODD(s(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(19) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 2 trailing tuple parts

(20) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0))))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(21) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(s(z0))) → c(COND(odd(z0), p(p(p(s(s(z0)))))), ODD(s(s(z0)))) by

COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(0))) → c(COND(false, p(p(p(s(s(0)))))), ODD(s(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))

(22) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(0))) → c(COND(false, p(p(p(s(s(0)))))), ODD(s(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(0))) → c(COND(false, p(p(p(s(s(0)))))), ODD(s(s(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(23) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(24) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(25) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
We considered the (Usable) Rules:none
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = [1]   
POL(COND(x1, x2)) = [1]   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = [1]   
POL(odd(x1)) = [1] + x1   
POL(p(x1)) = 0   
POL(s(x1)) = [1]   
POL(true) = [1]   

(26) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(27) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = [1]   
POL(COND(x1, x2)) = x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(28) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, 0) → c(COND(odd(0), p(p(0))))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(29) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, 0) → c(COND(odd(0), p(p(0)))) by

COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, 0) → c(COND(false, p(p(0))))

(30) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, 0) → c(COND(false, p(p(0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, 0) → c(COND(false, p(p(0))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(31) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(32) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, 0) → c
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, 0) → c
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(33) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, 0) → c
We considered the (Usable) Rules:none
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, 0) → c
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = [1]   
POL(COND(x1, x2)) = [1]   
POL(ODD(x1)) = 0   
POL(c) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = [1]   
POL(odd(x1)) = [1] + x1   
POL(p(x1)) = 0   
POL(s(x1)) = [1]   
POL(true) = [1]   

(34) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, 0) → c
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(p(s(0))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), p(0)))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(35) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(0)) → c(COND(true, p(p(p(s(0)))))) by

COND(true, s(0)) → c(COND(true, p(p(0))))

(36) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, 0) → c
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
K tuples:

COND(true, s(z0)) → c(COND(odd(s(z0)), p(p(z0))), ODD(s(z0)))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, 0) → c
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(37) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

COND(true, 0) → c

(38) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(39) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(0)) → c(COND(true, p(p(0))))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(40) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), p(0)))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(41) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND(true, s(s(z0))) → c(COND(odd(s(s(z0))), p(z0)), ODD(s(s(z0)))) by COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))

(42) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), p(0)))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(43) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0)))) by COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))

(44) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), p(0)))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), p(0)))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(45) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND(true, s(0)) → c(COND(odd(s(0)), p(0))) by COND(true, s(0)) → c(COND(odd(s(0)), 0))

(46) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, 0) → c(COND(odd(0), p(0)))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), p(0)))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(47) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, 0) → c(COND(odd(0), p(0))) by

COND(true, 0) → c(COND(odd(0), 0))
COND(true, 0) → c(COND(false, p(0)))

(48) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, 0) → c(COND(false, p(0)))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, 0) → c(COND(false, p(0)))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(49) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(50) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, 0) → c
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, 0) → c
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(51) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, 0) → c
We considered the (Usable) Rules:none
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, 0) → c
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = [1]   
POL(COND(x1, x2)) = [1]   
POL(ODD(x1)) = 0   
POL(c) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = [1]   
POL(odd(x1)) = [1] + x1   
POL(p(x1)) = 0   
POL(s(x1)) = [1]   
POL(true) = [1]   

(52) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c(COND(odd(0), 0))
COND(true, 0) → c
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(odd(0), 0))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, 0) → c
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(53) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, 0) → c(COND(odd(0), 0)) by

COND(true, 0) → c(COND(false, 0))

(54) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c
COND(true, 0) → c(COND(false, 0))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(false, 0))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, 0) → c
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(55) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

COND(true, 0) → c

(56) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c(COND(false, 0))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c(COND(false, 0))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(57) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(58) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, 0) → c
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(59) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, 0) → c
We considered the (Usable) Rules:none
And the Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = [1]   
POL(ODD(x1)) = 0   
POL(c) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = [1] + x1   
POL(p(x1)) = 0   
POL(s(x1)) = [1]   
POL(true) = [1]   

(60) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, 0) → c
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(61) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND(true, s(0)) → c(COND(true, p(p(0)))) by COND(true, s(0)) → c(COND(true, p(0)))

(62) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c
COND(true, s(0)) → c(COND(true, p(0)))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, 0) → c
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c, c

(63) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 2 trailing nodes:

COND(true, s(0)) → c(COND(odd(s(0)), 0))
COND(true, 0) → c

(64) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(0)))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(65) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(0)) → c(COND(true, p(0))) by

COND(true, s(0)) → c(COND(true, 0))

(66) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, 0))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(67) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

COND(true, s(0)) → c(COND(true, 0))

(68) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
S tuples:

ODD(s(s(z0))) → c3(ODD(z0))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

ODD, COND

Compound Symbols:

c3, c, c

(69) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace ODD(s(s(z0))) → c3(ODD(z0)) by

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))

(70) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
S tuples:

COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(0))) → c(ODD(s(s(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(71) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

COND(true, s(s(0))) → c(ODD(s(s(0))))

(72) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
S tuples:

COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))), ODD(s(s(s(0)))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(73) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts

(74) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
S tuples:

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(75) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND(true, s(s(x0))) → c(COND(odd(x0), p(p(s(x0)))), ODD(s(s(x0)))) by COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))

(76) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
S tuples:

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0))))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(77) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(p(s(s(s(s(z0)))))))), ODD(s(s(s(s(z0)))))) by COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))

(78) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
S tuples:

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(79) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
We considered the (Usable) Rules:

odd(0) → false
p(0) → 0
odd(s(0)) → true
p(s(z0)) → z0
odd(s(s(z0))) → odd(z0)
And the Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = [1] + x1 + x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = [1]   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = [1]   

(80) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
S tuples:

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(81) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND(true, s(0)) → c(COND(true, p(p(0)))) by COND(true, s(0)) → c(COND(true, p(0)))

(82) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(0)) → c(COND(true, p(0)))
S tuples:

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(83) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND(true, s(0)) → c(COND(true, p(0))) by

COND(true, s(0)) → c(COND(true, 0))

(84) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(0)) → c(COND(true, 0))
S tuples:

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(p(s(z0)))), ODD(s(s(z0))))
COND(true, s(0)) → c(COND(true, p(p(0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(85) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

COND(true, s(0)) → c(COND(true, 0))

(86) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
S tuples:

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
K tuples:

COND(true, s(s(x0))) → c(ODD(s(s(x0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(87) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace COND(true, s(s(x0))) → c(ODD(s(s(x0)))) by

COND(true, s(s(s(s(y0))))) → c(ODD(s(s(s(s(y0))))))

(88) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(y0))))) → c(ODD(s(s(s(s(y0))))))
S tuples:

ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
K tuples:

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(y0))))) → c(ODD(s(s(s(s(y0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c3, c

(89) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace ODD(s(s(s(s(y0))))) → c3(ODD(s(s(y0)))) by

ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))

(90) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(y0))))) → c(ODD(s(s(s(s(y0))))))
ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
S tuples:

COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
K tuples:

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(y0))))) → c(ODD(s(s(s(s(y0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(91) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace COND(true, s(s(s(s(y0))))) → c(ODD(s(s(s(s(y0)))))) by

COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))

(92) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))
S tuples:

COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0))))))))
ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
K tuples:

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c, c3

(93) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND(true, s(s(s(0)))) → c(COND(true, p(p(p(s(s(s(0)))))))) by COND(true, s(s(s(0)))) → c(COND(true, p(p(s(s(0))))))

(94) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(s(s(0))))))
S tuples:

ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(s(s(0))))))
K tuples:

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c3, c

(95) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

COND(true, s(s(s(0)))) → c(COND(true, p(p(s(s(0))))))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(s(s(0))))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = x2   
POL(ODD(x1)) = 0   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = 0   
POL(odd(x1)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(96) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(s(s(0))))))
S tuples:

ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
K tuples:

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(s(s(0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c3, c

(97) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(s(s(0))))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(COND(x1, x2)) = [2]x22   
POL(ODD(x1)) = [1] + x1   
POL(c(x1)) = x1   
POL(c(x1, x2)) = x1 + x2   
POL(c3(x1)) = x1   
POL(false) = [1]   
POL(odd(x1)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [2] + x1   
POL(true) = 0   

(98) Obligation:

Complexity Dependency Tuples Problem
Rules:

odd(0) → false
odd(s(0)) → true
odd(s(s(z0))) → odd(z0)
p(0) → 0
p(s(z0)) → z0
Tuples:

COND(true, s(s(z0))) → c(COND(odd(z0), p(z0)), ODD(s(s(z0))))
COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(s(s(0))))))
S tuples:none
K tuples:

COND(true, s(s(s(s(z0))))) → c(COND(odd(z0), p(p(s(s(s(z0)))))), ODD(s(s(s(s(z0))))))
COND(true, s(s(s(s(s(s(y0))))))) → c(ODD(s(s(s(s(s(s(y0))))))))
COND(true, s(s(s(0)))) → c(COND(true, p(p(s(s(0))))))
ODD(s(s(s(s(s(s(y0))))))) → c3(ODD(s(s(s(s(y0))))))
Defined Rule Symbols:

odd, p

Defined Pair Symbols:

COND, ODD

Compound Symbols:

c, c3, c

(99) SIsEmptyProof (BOTH BOUNDS(ID, ID) transformation)

The set S is empty

(100) BOUNDS(1, 1)